package com.hongxun.project.assets.pBoxes.service;

import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hongxun.project.assets.pBoxes.mapper.PBoxesMapper;
import com.hongxun.project.assets.pBoxes.domain.PBoxes;
import com.hongxun.project.assets.pBoxes.service.IPBoxesService;
import com.hongxun.common.utils.text.Convert;

/**
 * 箱采集 服务层实现
 *
 * @author hongxun
 * @date 2019-03-19
 */
@Service
public class PBoxesServiceImpl implements IPBoxesService {
    @Autowired
    private PBoxesMapper pBoxesMapper;

    /**
     * 查询箱采集信息
     *
     * @param id 箱采集ID
     * @return 箱采集信息
     */
    @Override
    public PBoxes selectPBoxesById(String id, String taskId) {
        return pBoxesMapper.selectPBoxesById(id, taskId);
    }
    @Override
    public PBoxes selectPBoxesByIdForState(String id, String taskId) {
        return pBoxesMapper.selectPBoxesByIdForState(id, taskId);
    }

    /**
     * 查询箱采集列表
     *
     * @param pBoxes 箱采集信息
     * @return 箱采集集合
     */
    @Override
    public List<PBoxes> selectPBoxesList(PBoxes pBoxes) {
        return pBoxesMapper.selectPBoxesList(pBoxes);
    }

    /**
     * 新增箱采集
     *
     * @param pBoxes 箱采集信息
     * @return 结果
     */
    @Override
    public int insertPBoxes(PBoxes pBoxes) {
        pBoxes.setId(UUID.randomUUID().toString());
        return pBoxesMapper.insertPBoxes(pBoxes);
    }

    /**
     * 修改箱采集
     *
     * @param pBoxes 箱采集信息
     * @return 结果
     */
    @Override
    public int updatePBoxes(PBoxes pBoxes) {
        return pBoxesMapper.updatePBoxes(pBoxes);
    }

    /**
     * 删除箱采集对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deletePBoxesByIds(String ids) {
        return pBoxesMapper.deletePBoxesByIds(Convert.toStrArray(ids));
    }

    @Override
    public int deletePBoxesByIdsAndTaskIds(String ids, String taskIds) {
        return pBoxesMapper.deletePBoxesByIdsAndTaskIds(Convert.toStrArray(ids), Convert.toStrArray(taskIds));
    }


    @Override
    public void insertOrReplaceOrDelete(List<PBoxes> entities) {
        for (PBoxes d : entities) {
//            if (d.getDatastate().equals("删除")) {
//                pBoxesMapper.deletePBoxesByIdsAndTaskIds(Convert.toStrArray(d.getId())  , Convert.toStrArray(d.getTaskId()));
//            } else {
            PBoxes pBoxes = pBoxesMapper.selectPBoxesById(d.getId(), d.getTaskId());
            if (pBoxes == null) {
                pBoxesMapper.insertPBoxes(d);
            } else {
                pBoxesMapper.updatePBoxes(d);
//                }
            }
        }
    }

}
